package com.bysj.sausys.dao;

import com.bysj.sausys.beans.PageQuery;
import com.bysj.sausys.model.SysActArt;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 推文Mapper接口
 *
 * @author WangZK
 */
public interface SysActArtMapper {

    /**
     * 删除推文
     *
     * @param id
     * @return
     */
    int deleteByPrimaryKey(Integer id);

    /**
     * 插入推文
     *
     * @param record
     * @return
     */
    int insertSelective(SysActArt record);

    /**
     * 根据id获取推文
     *
     * @param id
     * @return
     */
    SysActArt selectByPrimaryKey(Integer id);

    /**
     * 更新推文
     *
     * @param record
     * @return
     */
    int updateByPrimaryKeySelective(SysActArt record);

    /**
     * 根据id、type、title、assId统计推文数量
     *
     * @param id
     * @param type
     * @param title
     * @param assId
     * @return
     */
    int countByTypeAndTitleAndAssId(@Param("id") Integer id, @Param("type") String type, @Param("title") String title, @Param("assId") Integer assId);

    /**
     * 根据审批状态统计推文数量
     *
     * @param auditStatus
     * @return
     */
    int countByAuditStatus(@Param("auditStatus") int auditStatus);

    /**
     * 根据审批状态分页获取推文
     *
     * @param auditStatus
     * @param pageQuery
     * @return
     */
    List<SysActArt> selectByAuditStatus(@Param("auditStatus") int auditStatus, @Param("pageQuery") PageQuery pageQuery);

    /**
     * 根据社团id统计推文数量
     *
     * @param assId
     * @return
     */
    int countByAssId(@Param("assId") Integer assId);

    /**
     * 根据社团id分页获取推文
     *
     * @param pageQuery
     * @param assId
     * @return
     */
    List<SysActArt> selectByAssId(@Param("pageQuery") PageQuery pageQuery, @Param("assId") Integer assId);

    /**
     * 修改推文的显示状态
     *
     * @param id
     * @param showStatus
     * @return
     */
    int updateShowStatus(@Param("id") Integer id, @Param("showStatus") int showStatus);

    /**
     * 修改推文状态
     *
     * @param map
     * @return
     */
    int updateStatus(@Param("map") Map map);

    /**
     * 根据推文类型和展示状态统计推文数量
     *
     * @param type
     * @param showStatus
     * @return
     */
    int countByTypeAndShowStatus(@Param("type") String type, @Param("showStatus") Integer showStatus);

    /**
     * 根据推文类型和展示状态分页获取推文列表
     *
     * @param type
     * @param showStatus
     * @param pageQuery
     * @return
     */
    List<SysActArt> selectByTypeAndShowStatus(@Param("type") String type, @Param("showStatus") Integer showStatus, @Param("pageQuery") PageQuery pageQuery);

    /**
     * 根据社团id和展示状态分页获取推文列表
     *
     * @param assId
     * @param showStatus
     * @return
     */
    int countByAssIdAndShowStatus(@Param("assId") Integer assId, @Param("showStatus") Integer showStatus);

    /**
     * 根据社团id和展示状态分页获取推文列表
     *
     * @param assId
     * @param showStatus
     * @param pageQuery
     * @return
     */
    List<SysActArt> selectByAssIdAndShowStatus(@Param("assId") Integer assId, @Param("showStatus") Integer showStatus, @Param("pageQuery") PageQuery pageQuery);
}